** Code to generate the income distribution by occupation 
*(routine and cognitive) and by education level
* The estimations are used to produce Figure C1
clear
cd "C:\Users\luciene.pereira\OneDrive\Censo_Mac_2022_05_06\censo-1980-IBGE"
use Censo_80.dta


gen g1 = [anos_estudoB==0]
gen g2 = [anos_estudoB>=1 & anos_estudoB<=4]
gen g3 = [anos_estudoB>=5 & anos_estudoB<=8]
gen g4 = [anos_estudoB>=9 & anos_estudoB<=11]
gen g5 = [anos_estudoB>=12 & anos_estudoB<=16]
gen group_school=g1+2*g2+3*g3+4*g4+5*g5

* Working 30-39 or 40-48 hours
gen emp2 = [hrs_oc_hab>=2 & hrs_oc_hab<=4] 

gen total_income_ln = ln(rend_total_def) if (emp2==1 & idade>=25 & idade<=65 & rend_total_def>0 & rend_total_def!=.)


drop if ocup_hab==.

generate type_ocup = 0 

*Unskilled/routine 
	replace type_ocup = 1 if ocup_hab==301 | ocup_hab==302 | ocup_hab==303 | ocup_hab==304 | ocup_hab==305 | ocup_hab==321 | ocup_hab==322 | ocup_hab==331 | ocup_hab==332 | 	ocup_hab==333 | ocup_hab==334 | ocup_hab==335 | ocup_hab==336 | ocup_hab==252 | ocup_hab==293 | ocup_hab==571 | ocup_hab==601 | ocup_hab==645 | ocup_hab==646 | ocup_hab==831 | ocup_hab==832 | ocup_hab==833 | ocup_hab==834 | ocup_hab==851 | ocup_hab==852 | ocup_hab==853 | ocup_hab==854 | ocup_hab==855 | 	ocup_hab==856 | ocup_hab==857 | ocup_hab==858 | ocup_hab==859 | ocup_hab==050 | ocup_hab==051 | ocup_hab==927 | ocup_hab==999 | ocup_hab==020 | ocup_hab==021 

*non-routine or cognitive	
	replace type_ocup = 2 if ocup_hab==101 | ocup_hab==102 | ocup_hab==103 | ocup_hab==104 | ocup_hab==121 | ocup_hab==122 | ocup_hab==123 | ocup_hab==124 | ocup_hab==125 | ocup_hab==141 | ocup_hab==142 | ocup_hab==143 | ocup_hab==144 | ocup_hab==151 | ocup_hab==152 | ocup_hab==153 | ocup_hab==154 | ocup_hab==171 | ocup_hab==172 | ocup_hab==173 | ocup_hab==181 | ocup_hab==182 | 	ocup_hab==194 | ocup_hab==201 | ocup_hab==202 | ocup_hab==203 | ocup_hab==204 | ocup_hab==205 | ocup_hab==211 | ocup_hab==212 | ocup_hab==213 | ocup_hab==214 | ocup_hab==215 | ocup_hab==216 | ocup_hab==217 | ocup_hab==218 | ocup_hab==219 | ocup_hab==231 | ocup_hab==232 | ocup_hab==233 | ocup_hab==241 | ocup_hab==251 | ocup_hab==261 | ocup_hab==271 | ocup_hab==272 | ocup_hab==273 | ocup_hab==274 | ocup_hab==275 | ocup_hab==276 | ocup_hab==277 | ocup_hab==278 | ocup_hab==279 | ocup_hab==280 | ocup_hab==291 | ocup_hab==292 | ocup_hab==641 | ocup_hab==642 | ocup_hab==643 | ocup_hab==644 | ocup_hab==711 | ocup_hab==721 | ocup_hab==811 |  ocup_hab==001 | ocup_hab==002 | ocup_hab==003 | ocup_hab==004 | ocup_hab==005 | ocup_hab==006 | ocup_hab==007 | ocup_hab==008 | ocup_hab==009 | ocup_hab==010 | ocup_hab==011 | ocup_hab==012 | ocup_hab==015 | ocup_hab==030 | ocup_hab==031 | 	ocup_hab==032 | ocup_hab==033 | ocup_hab==034 | ocup_hab==035 | ocup_hab==036 | ocup_hab==037 | ocup_hab==038 | ocup_hab==039 | ocup_hab==040 


kdensity total_income_ln if type_ocup==0 & group_school==1 & total_income_ln>1 & total_income_ln<15 [aweight=peso_pess], bw(0.2) nograph generate (x fx1)
kdensity total_income_ln if type_ocup==0 & group_school==2 & total_income_ln>1 & total_income_ln<15 [aweight=peso_pess], bw(0.2) nograph generate (fx2) at(x)
kdensity total_income_ln if type_ocup==0 & group_school==3 & total_income_ln>1 & total_income_ln<15 [aweight=peso_pess], bw(0.2) nograph generate (fx3) at(x)
kdensity total_income_ln if type_ocup==0 & group_school==4 & total_income_ln>1 & total_income_ln<15 [aweight=peso_pess], bw(0.2) nograph generate (fx4) at(x)
kdensity total_income_ln if type_ocup==0 & group_school==5 & total_income_ln>1 & total_income_ln<15 [aweight=peso_pess], bw(0.2) nograph generate (fx5) at(x)

kdensity total_income_ln if type_ocup==2 & group_school==1 & total_income_ln>1 & total_income_ln<15 [aweight=peso_pess], bw(0.2) nograph generate (fx6) at(x)
kdensity total_income_ln if type_ocup==2 & group_school==2 & total_income_ln>1 & total_income_ln<15 [aweight=peso_pess], bw(0.2) nograph generate (fx7) at(x)
kdensity total_income_ln if type_ocup==2 & group_school==3 & total_income_ln>1 & total_income_ln<15 [aweight=peso_pess], bw(0.2) nograph generate (fx8) at(x)
kdensity total_income_ln if type_ocup==2 & group_school==4 & total_income_ln>1 & total_income_ln<15 [aweight=peso_pess], bw(0.2) nograph generate (fx9) at(x)
kdensity total_income_ln if type_ocup==2 & group_school==5 & total_income_ln>1 & total_income_ln<15 [aweight=peso_pess], bw(0.2) nograph generate (fx10) at(x)


*keep x fx fx1 fx2 fx3
drop if x==. 
outsheet x fx1 fx2 fx3 fx4 fx5 fx6 fx7 fx8 fx9 fx10 using Inc_educ_routine_cognitive_5_2024_1.csv

line fx1 fx2 fx3 fx4 fx5 fx6 fx7 fx8 fx9 fx10 x


